﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UFIDA.U9.AP.Enums;
using UFIDA.U9.CBO.FI.Enums;
using UFIDA.U9.CBO.SCM.Item;
using UFIDA.U9.SM.SO;
using UFSoft.UBF.Business;
using UFSoft.UBF.Eventing;
using UFSoft.UBF.Util.DataAccess;

namespace UFIDA.U9.CusDev.QJKJPlugInBE
{
    class ProcessForqCDocDeleting : IEventSubscriber
    {
        public void Notify(params object[] args)
        {

            if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent)) return;
            BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey;

            if (key == null || key.GetEntity() == null) return;
            //质检单
            UFIDA.U9.QC.QCDocBE.QCDoc qc = key.GetEntity() as UFIDA.U9.QC.QCDocBE.QCDoc;
            if (qc == null) return;
                       
            #region 质检单行删除时
            foreach (var line in qc.OriginalData.QCDocLines)
            {
                //引入料品
                ItemMaster itemMaster = ItemMaster.Finder.Find($"Code='{line.ItemMaster.Code}'");
                if (itemMaster == null) continue;
                using (ISession session = Session.Open())
                {
                    if (itemMaster.DescFlexField.PrivateDescSeg9 == null || itemMaster.DescFlexField.PrivateDescSeg9=="") return;
                    if (decimal.Parse(itemMaster.DescFlexField.PrivateDescSeg9) - 1 <= 0)
                    {
                        itemMaster.DescFlexField.PrivateDescSeg9 = itemMaster.DescFlexField.PrivateDescSeg8;
                    }
                    else
                        itemMaster.DescFlexField.PrivateDescSeg9 = (decimal.Parse(itemMaster.DescFlexField.PrivateDescSeg9) - 1).ToString();
                    session.Commit();
                }

            }


            #endregion

        }

    }
}
